package com.wjp.banquet.controller;

import com.github.pagehelper.PageInfo;
import com.wjp.banquet.common.util.MessageUtil;
import com.wjp.banquet.common.util.ParamCheckUtil;
import com.wjp.banquet.common.vo.CommonRsp;
import com.wjp.banquet.dto.BanquetAddDTO;
import com.wjp.banquet.dto.BanquetPageQueryDTO;
import com.wjp.banquet.dto.GiftMoneyAddDTO;
import com.wjp.banquet.dto.GiftMoneyPageQueryDTO;
import com.wjp.banquet.service.GiftMoneyService;
import com.wjp.banquet.vo.BanquetVO;
import com.wjp.banquet.vo.GiftMoneyVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;
import java.util.List;

/**
 * @Author 王君平
 * @Date 2024/4/24 8:29
 * @Description
 */
@Slf4j
@Api(value = "酒席-宾客随礼", tags = {"酒席-宾客随礼"})
@RequestMapping("/giftMoney")
@RestController
public class GiftMoneyController {

    @Autowired
    private GiftMoneyService giftMoneyService;

    @ApiOperation(value = " 作者：王君平 日期： 2023年8月28日")
    @PostMapping("")
    public CommonRsp<?> add(@Valid @RequestBody GiftMoneyAddDTO dto, BindingResult bindingResult) {
        ParamCheckUtil.verifyBindingResult(bindingResult);
        giftMoneyService.add(dto);
        return MessageUtil.success();
    }

    @ApiOperation(value = "分页列表 作者：王君平 日期： 2023年8月31日", response = GiftMoneyVO.class)
    @GetMapping("page")
    public CommonRsp<PageInfo<GiftMoneyVO>> pageList(GiftMoneyPageQueryDTO dto) {
        PageInfo<GiftMoneyVO> pageInfo = giftMoneyService.pageList(dto);
        return MessageUtil.success(pageInfo);
    }

    @ApiOperation(value = "列表 作者：王君平 日期： 2023年8月31日", response = GiftMoneyVO.class)
    @GetMapping("all")
    public CommonRsp<List<GiftMoneyVO>> allList(GiftMoneyPageQueryDTO dto) {
        List<GiftMoneyVO> list = giftMoneyService.allList(dto);
        return MessageUtil.success(list);
    }
}
